package com.example.musicaiap.data.database.dao

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.example.musicaiap.data.database.PlayHistoryEntity

/**
 * 播放历史DAO
 * 管理播放历史记录的数据库操作
 */
@Dao
interface PlayHistoryDao {
    /**
     * 获取最近的播放历史
     * @param limit 返回的记录数量限制
     * @return 按播放时间倒序排列的播放历史列表
     */
    @Query("SELECT * FROM play_history ORDER BY playedAt DESC LIMIT :limit")
    suspend fun getRecentHistory(limit: Int): List<PlayHistoryEntity>
    
    /**
     * 插入或更新播放历史记录
     * @param history 要插入的播放历史记录
     */
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertHistory(history: PlayHistoryEntity)
    
    /**
     * 删除指定时间之前的播放历史记录
     * @param timestamp 时间戳，删除此时间之前的记录
     */
    @Query("DELETE FROM play_history WHERE playedAt < :timestamp")
    suspend fun deleteOldHistory(timestamp: Long)
    
    /**
     * 获取指定歌曲的播放次数
     * @param songId 歌曲ID
     * @return 播放次数
     */
    @Query("SELECT playCount FROM play_history WHERE songId = :songId")
    suspend fun getPlayCount(songId: String): Int?
} 